<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>LibQQt: R:/Develop/a0-develop/LibQQt/src/network/gumbo/parser/src/gumbo.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">LibQQt
   &#160;<span id="projectnumber">v3.1</span>
   </div>
   <div id="projectbrief">开源、跨平台Qt应用程序框架中间件</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_fc4c7f03e1a69a98c370fae55a743828.html">network</a></li><li class="navelem"><a class="el" href="dir_315308bc138c6361f83ca3a79c5df9c9.html">gumbo</a></li><li class="navelem"><a class="el" href="dir_c1e049e6d70be388dda1df5b37e8c010.html">parser</a></li><li class="navelem"><a class="el" href="dir_0ad0506bdb91423b8ec7f622aa941062.html">src</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">gumbo.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;stdbool.h&gt;</code><br />
<code>#include &lt;stddef.h&gt;</code><br />
<code>#include &quot;tag_enum.h&quot;</code><br />
</div>
<p><a href="gumbo_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_gumbo_source_position.html">GumboSourcePosition</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_gumbo_string_piece.html">GumboStringPiece</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_gumbo_vector.html">GumboVector</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_gumbo_attribute.html">GumboAttribute</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_gumbo_document.html">GumboDocument</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_gumbo_text.html">GumboText</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_gumbo_element.html">GumboElement</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_gumbo_internal_node.html">GumboInternalNode</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_gumbo_internal_options.html">GumboInternalOptions</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_gumbo_internal_output.html">GumboInternalOutput</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a5f67d8397fda8fb7c90cc27f14ac4e7d"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_gumbo_internal_node.html">GumboInternalNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gumbo_8h.html#a5f67d8397fda8fb7c90cc27f14ac4e7d">GumboNode</a></td></tr>
<tr class="separator:a5f67d8397fda8fb7c90cc27f14ac4e7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf78769ab19b5fbe291f7977cae899df"><td class="memItemLeft" align="right" valign="top">typedef void *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gumbo_8h.html#aaf78769ab19b5fbe291f7977cae899df">GumboAllocatorFunction</a>) (void *userdata, size_t size)</td></tr>
<tr class="separator:aaf78769ab19b5fbe291f7977cae899df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19e07a5e573bf194295141fba654d2ea"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gumbo_8h.html#a19e07a5e573bf194295141fba654d2ea">GumboDeallocatorFunction</a>) (void *userdata, void *ptr)</td></tr>
<tr class="separator:a19e07a5e573bf194295141fba654d2ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a915ce96b9f456217a2258dcb29e03d3a"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_gumbo_internal_options.html">GumboInternalOptions</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gumbo_8h.html#a915ce96b9f456217a2258dcb29e03d3a">GumboOptions</a></td></tr>
<tr class="separator:a915ce96b9f456217a2258dcb29e03d3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac09b34c35171e94412a6ceb04dce4c12"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_gumbo_internal_output.html">GumboInternalOutput</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gumbo_8h.html#ac09b34c35171e94412a6ceb04dce4c12">GumboOutput</a></td></tr>
<tr class="separator:ac09b34c35171e94412a6ceb04dce4c12"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a5a3aa6f4b039f85875d638088e676a0f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gumbo_8h.html#a5a3aa6f4b039f85875d638088e676a0f">GumboTag</a> { <br />
&#160;&#160;<b>GUMBO_TAG_HTML</b>, 
<b>GUMBO_TAG_HEAD</b>, 
<b>GUMBO_TAG_TITLE</b>, 
<b>GUMBO_TAG_BASE</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_LINK</b>, 
<b>GUMBO_TAG_META</b>, 
<b>GUMBO_TAG_STYLE</b>, 
<b>GUMBO_TAG_SCRIPT</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_NOSCRIPT</b>, 
<b>GUMBO_TAG_TEMPLATE</b>, 
<b>GUMBO_TAG_BODY</b>, 
<b>GUMBO_TAG_ARTICLE</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_SECTION</b>, 
<b>GUMBO_TAG_NAV</b>, 
<b>GUMBO_TAG_ASIDE</b>, 
<b>GUMBO_TAG_H1</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_H2</b>, 
<b>GUMBO_TAG_H3</b>, 
<b>GUMBO_TAG_H4</b>, 
<b>GUMBO_TAG_H5</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_H6</b>, 
<b>GUMBO_TAG_HGROUP</b>, 
<b>GUMBO_TAG_HEADER</b>, 
<b>GUMBO_TAG_FOOTER</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_ADDRESS</b>, 
<b>GUMBO_TAG_P</b>, 
<b>GUMBO_TAG_HR</b>, 
<b>GUMBO_TAG_PRE</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_BLOCKQUOTE</b>, 
<b>GUMBO_TAG_OL</b>, 
<b>GUMBO_TAG_UL</b>, 
<b>GUMBO_TAG_LI</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_DL</b>, 
<b>GUMBO_TAG_DT</b>, 
<b>GUMBO_TAG_DD</b>, 
<b>GUMBO_TAG_FIGURE</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_FIGCAPTION</b>, 
<b>GUMBO_TAG_MAIN</b>, 
<b>GUMBO_TAG_DIV</b>, 
<b>GUMBO_TAG_A</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_EM</b>, 
<b>GUMBO_TAG_STRONG</b>, 
<b>GUMBO_TAG_SMALL</b>, 
<b>GUMBO_TAG_S</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_CITE</b>, 
<b>GUMBO_TAG_Q</b>, 
<b>GUMBO_TAG_DFN</b>, 
<b>GUMBO_TAG_ABBR</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_DATA</b>, 
<b>GUMBO_TAG_TIME</b>, 
<b>GUMBO_TAG_CODE</b>, 
<b>GUMBO_TAG_VAR</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_SAMP</b>, 
<b>GUMBO_TAG_KBD</b>, 
<b>GUMBO_TAG_SUB</b>, 
<b>GUMBO_TAG_SUP</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_I</b>, 
<b>GUMBO_TAG_B</b>, 
<b>GUMBO_TAG_U</b>, 
<b>GUMBO_TAG_MARK</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_RUBY</b>, 
<b>GUMBO_TAG_RT</b>, 
<b>GUMBO_TAG_RP</b>, 
<b>GUMBO_TAG_BDI</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_BDO</b>, 
<b>GUMBO_TAG_SPAN</b>, 
<b>GUMBO_TAG_BR</b>, 
<b>GUMBO_TAG_WBR</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_INS</b>, 
<b>GUMBO_TAG_DEL</b>, 
<b>GUMBO_TAG_IMAGE</b>, 
<b>GUMBO_TAG_IMG</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_IFRAME</b>, 
<b>GUMBO_TAG_EMBED</b>, 
<b>GUMBO_TAG_OBJECT</b>, 
<b>GUMBO_TAG_PARAM</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_VIDEO</b>, 
<b>GUMBO_TAG_AUDIO</b>, 
<b>GUMBO_TAG_SOURCE</b>, 
<b>GUMBO_TAG_TRACK</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_CANVAS</b>, 
<b>GUMBO_TAG_MAP</b>, 
<b>GUMBO_TAG_AREA</b>, 
<b>GUMBO_TAG_MATH</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_MI</b>, 
<b>GUMBO_TAG_MO</b>, 
<b>GUMBO_TAG_MN</b>, 
<b>GUMBO_TAG_MS</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_MTEXT</b>, 
<b>GUMBO_TAG_MGLYPH</b>, 
<b>GUMBO_TAG_MALIGNMARK</b>, 
<b>GUMBO_TAG_ANNOTATION_XML</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_SVG</b>, 
<b>GUMBO_TAG_FOREIGNOBJECT</b>, 
<b>GUMBO_TAG_DESC</b>, 
<b>GUMBO_TAG_TABLE</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_CAPTION</b>, 
<b>GUMBO_TAG_COLGROUP</b>, 
<b>GUMBO_TAG_COL</b>, 
<b>GUMBO_TAG_TBODY</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_THEAD</b>, 
<b>GUMBO_TAG_TFOOT</b>, 
<b>GUMBO_TAG_TR</b>, 
<b>GUMBO_TAG_TD</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_TH</b>, 
<b>GUMBO_TAG_FORM</b>, 
<b>GUMBO_TAG_FIELDSET</b>, 
<b>GUMBO_TAG_LEGEND</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_LABEL</b>, 
<b>GUMBO_TAG_INPUT</b>, 
<b>GUMBO_TAG_BUTTON</b>, 
<b>GUMBO_TAG_SELECT</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_DATALIST</b>, 
<b>GUMBO_TAG_OPTGROUP</b>, 
<b>GUMBO_TAG_OPTION</b>, 
<b>GUMBO_TAG_TEXTAREA</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_KEYGEN</b>, 
<b>GUMBO_TAG_OUTPUT</b>, 
<b>GUMBO_TAG_PROGRESS</b>, 
<b>GUMBO_TAG_METER</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_DETAILS</b>, 
<b>GUMBO_TAG_SUMMARY</b>, 
<b>GUMBO_TAG_MENU</b>, 
<b>GUMBO_TAG_MENUITEM</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_APPLET</b>, 
<b>GUMBO_TAG_ACRONYM</b>, 
<b>GUMBO_TAG_BGSOUND</b>, 
<b>GUMBO_TAG_DIR</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_FRAME</b>, 
<b>GUMBO_TAG_FRAMESET</b>, 
<b>GUMBO_TAG_NOFRAMES</b>, 
<b>GUMBO_TAG_ISINDEX</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_LISTING</b>, 
<b>GUMBO_TAG_XMP</b>, 
<b>GUMBO_TAG_NEXTID</b>, 
<b>GUMBO_TAG_NOEMBED</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_PLAINTEXT</b>, 
<b>GUMBO_TAG_RB</b>, 
<b>GUMBO_TAG_STRIKE</b>, 
<b>GUMBO_TAG_BASEFONT</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_BIG</b>, 
<b>GUMBO_TAG_BLINK</b>, 
<b>GUMBO_TAG_CENTER</b>, 
<b>GUMBO_TAG_FONT</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_MARQUEE</b>, 
<b>GUMBO_TAG_MULTICOL</b>, 
<b>GUMBO_TAG_NOBR</b>, 
<b>GUMBO_TAG_SPACER</b>, 
<br />
&#160;&#160;<b>GUMBO_TAG_TT</b>, 
<b>GUMBO_TAG_RTC</b>, 
<b>GUMBO_TAG_UNKNOWN</b>, 
<b>GUMBO_TAG_LAST</b>
<br />
 }</td></tr>
<tr class="separator:a5a3aa6f4b039f85875d638088e676a0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a030699170924efadb11b8e43a8681852"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gumbo_8h.html#a030699170924efadb11b8e43a8681852">GumboAttributeNamespaceEnum</a> { <b>GUMBO_ATTR_NAMESPACE_NONE</b>, 
<b>GUMBO_ATTR_NAMESPACE_XLINK</b>, 
<b>GUMBO_ATTR_NAMESPACE_XML</b>, 
<b>GUMBO_ATTR_NAMESPACE_XMLNS</b>
 }</td></tr>
<tr class="separator:a030699170924efadb11b8e43a8681852"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74e7c5d1cb8189fcfad8443ce4c44ee0"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gumbo_8h.html#a74e7c5d1cb8189fcfad8443ce4c44ee0">GumboNodeType</a> { <br />
&#160;&#160;<a class="el" href="gumbo_8h.html#a74e7c5d1cb8189fcfad8443ce4c44ee0a34d99fd84894e81da94be99d7d169119">GUMBO_NODE_DOCUMENT</a>, 
<a class="el" href="gumbo_8h.html#a74e7c5d1cb8189fcfad8443ce4c44ee0ac8229cb0a1c50040cf33a37886367032">GUMBO_NODE_ELEMENT</a>, 
<a class="el" href="gumbo_8h.html#a74e7c5d1cb8189fcfad8443ce4c44ee0a34bb32963a5c7b496c332235694ec29d">GUMBO_NODE_TEXT</a>, 
<a class="el" href="gumbo_8h.html#a74e7c5d1cb8189fcfad8443ce4c44ee0a1b113ed18638a82264020253f4ab3339">GUMBO_NODE_CDATA</a>, 
<br />
&#160;&#160;<a class="el" href="gumbo_8h.html#a74e7c5d1cb8189fcfad8443ce4c44ee0aa5dec1a464a7b15949928f4c09626a05">GUMBO_NODE_COMMENT</a>, 
<a class="el" href="gumbo_8h.html#a74e7c5d1cb8189fcfad8443ce4c44ee0a4076182d6a1eac3b650992ecf18b33a6">GUMBO_NODE_WHITESPACE</a>, 
<a class="el" href="gumbo_8h.html#a74e7c5d1cb8189fcfad8443ce4c44ee0abfb19f332b24d2d051042fafbdd0d7aa">GUMBO_NODE_TEMPLATE</a>
<br />
 }</td></tr>
<tr class="separator:a74e7c5d1cb8189fcfad8443ce4c44ee0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0cbbfcc7ab2be48ac329ef7e76ff135"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gumbo_8h.html#aa0cbbfcc7ab2be48ac329ef7e76ff135">GumboQuirksModeEnum</a> { <b>GUMBO_DOCTYPE_NO_QUIRKS</b>, 
<b>GUMBO_DOCTYPE_QUIRKS</b>, 
<b>GUMBO_DOCTYPE_LIMITED_QUIRKS</b>
 }</td></tr>
<tr class="separator:aa0cbbfcc7ab2be48ac329ef7e76ff135"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5792dfd02513e421fb8f083f08e58cc6"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gumbo_8h.html#a5792dfd02513e421fb8f083f08e58cc6">GumboNamespaceEnum</a> { <b>GUMBO_NAMESPACE_HTML</b>, 
<b>GUMBO_NAMESPACE_SVG</b>, 
<b>GUMBO_NAMESPACE_MATHML</b>
 }</td></tr>
<tr class="separator:a5792dfd02513e421fb8f083f08e58cc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74ff2c74a4bf7777efb2b9a29315e74b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gumbo_8h.html#a74ff2c74a4bf7777efb2b9a29315e74b">GumboParseFlags</a> { <br />
&#160;&#160;<a class="el" href="gumbo_8h.html#a74ff2c74a4bf7777efb2b9a29315e74ba65032b83de057f59ef88c192bfc6257e">GUMBO_INSERTION_NORMAL</a> = 0, 
<a class="el" href="gumbo_8h.html#a74ff2c74a4bf7777efb2b9a29315e74babc5578ef89b8ddd8b992f239bd332408">GUMBO_INSERTION_BY_PARSER</a> = 1 &lt;&lt; 0, 
<a class="el" href="gumbo_8h.html#a74ff2c74a4bf7777efb2b9a29315e74ba8935aa552a7b6cec029ad3f20a54e22b">GUMBO_INSERTION_IMPLICIT_END_TAG</a> = 1 &lt;&lt; 1, 
<a class="el" href="gumbo_8h.html#a74ff2c74a4bf7777efb2b9a29315e74bad755e610f243d4aa7531316e884f3a75">GUMBO_INSERTION_IMPLIED</a> = 1 &lt;&lt; 3, 
<br />
&#160;&#160;<a class="el" href="gumbo_8h.html#a74ff2c74a4bf7777efb2b9a29315e74ba865b2f369584e25c67f4816c25b766ff">GUMBO_INSERTION_CONVERTED_FROM_END_TAG</a> = 1 &lt;&lt; 4, 
<a class="el" href="gumbo_8h.html#a74ff2c74a4bf7777efb2b9a29315e74baadeea09dc8e7c65af3d47e8e8fb535ac">GUMBO_INSERTION_FROM_ISINDEX</a> = 1 &lt;&lt; 5, 
<a class="el" href="gumbo_8h.html#a74ff2c74a4bf7777efb2b9a29315e74bae3c62bd3ec86284783013a2e78affb5a">GUMBO_INSERTION_FROM_IMAGE</a> = 1 &lt;&lt; 6, 
<a class="el" href="gumbo_8h.html#a74ff2c74a4bf7777efb2b9a29315e74baa1509526292f41998349376b86eab730">GUMBO_INSERTION_RECONSTRUCTED_FORMATTING_ELEMENT</a> = 1 &lt;&lt; 7, 
<br />
&#160;&#160;<a class="el" href="gumbo_8h.html#a74ff2c74a4bf7777efb2b9a29315e74ba03d2650d8f17abefd9dd4b633b03e217">GUMBO_INSERTION_ADOPTION_AGENCY_CLONED</a> = 1 &lt;&lt; 8, 
<a class="el" href="gumbo_8h.html#a74ff2c74a4bf7777efb2b9a29315e74babbd528bcd8e702fc5bab604e6988ae51">GUMBO_INSERTION_ADOPTION_AGENCY_MOVED</a> = 1 &lt;&lt; 9, 
<a class="el" href="gumbo_8h.html#a74ff2c74a4bf7777efb2b9a29315e74ba9afa0bd01c4480d76a0ca80b668f338b">GUMBO_INSERTION_FOSTER_PARENTED</a> = 1 &lt;&lt; 10
<br />
 }</td></tr>
<tr class="separator:a74ff2c74a4bf7777efb2b9a29315e74b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a862d4125ffb2f9d7c48c9a43033179d6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gumbo_8h.html#a862d4125ffb2f9d7c48c9a43033179d6">gumbo_string_equals</a> (const <a class="el" href="struct_gumbo_string_piece.html">GumboStringPiece</a> *str1, const <a class="el" href="struct_gumbo_string_piece.html">GumboStringPiece</a> *str2)</td></tr>
<tr class="separator:a862d4125ffb2f9d7c48c9a43033179d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70da4c83d0782f30c3e50bce9912a6d3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gumbo_8h.html#a70da4c83d0782f30c3e50bce9912a6d3">gumbo_string_equals_ignore_case</a> (const <a class="el" href="struct_gumbo_string_piece.html">GumboStringPiece</a> *str1, const <a class="el" href="struct_gumbo_string_piece.html">GumboStringPiece</a> *str2)</td></tr>
<tr class="separator:a70da4c83d0782f30c3e50bce9912a6d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a413172766f337e395c8becd814271dac"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gumbo_8h.html#a413172766f337e395c8becd814271dac">gumbo_vector_index_of</a> (<a class="el" href="struct_gumbo_vector.html">GumboVector</a> *vector, const void *element)</td></tr>
<tr class="separator:a413172766f337e395c8becd814271dac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ffea8f4c7b9615be4c6497173ad78af"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gumbo_8h.html#a7ffea8f4c7b9615be4c6497173ad78af">gumbo_normalized_tagname</a> (<a class="el" href="gumbo_8h.html#a5a3aa6f4b039f85875d638088e676a0f">GumboTag</a> tag)</td></tr>
<tr class="separator:a7ffea8f4c7b9615be4c6497173ad78af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa2160c796d9b32b773b7346f7db1347"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gumbo_8h.html#aaa2160c796d9b32b773b7346f7db1347">gumbo_tag_from_original_text</a> (<a class="el" href="struct_gumbo_string_piece.html">GumboStringPiece</a> *text)</td></tr>
<tr class="separator:aaa2160c796d9b32b773b7346f7db1347"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6addb5568175eafdcc6bc7513830e5e"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gumbo_8h.html#ac6addb5568175eafdcc6bc7513830e5e">gumbo_normalize_svg_tagname</a> (const <a class="el" href="struct_gumbo_string_piece.html">GumboStringPiece</a> *tagname)</td></tr>
<tr class="separator:ac6addb5568175eafdcc6bc7513830e5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a854e836c65501ec3c61bdf911b09c4ca"><td class="memItemLeft" align="right" valign="top"><a class="el" href="gumbo_8h.html#a5a3aa6f4b039f85875d638088e676a0f">GumboTag</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gumbo_8h.html#a854e836c65501ec3c61bdf911b09c4ca">gumbo_tag_enum</a> (const char *tagname)</td></tr>
<tr class="separator:a854e836c65501ec3c61bdf911b09c4ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7620f7758bd7925c9164b1f47a4148fe"><td class="memItemLeft" align="right" valign="top"><a id="a7620f7758bd7925c9164b1f47a4148fe"></a>
<a class="el" href="gumbo_8h.html#a5a3aa6f4b039f85875d638088e676a0f">GumboTag</a>&#160;</td><td class="memItemRight" valign="bottom"><b>gumbo_tagn_enum</b> (const char *tagname, unsigned int length)</td></tr>
<tr class="separator:a7620f7758bd7925c9164b1f47a4148fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48dbd27d9ef0b42ef841b74c5d8bea8c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_gumbo_attribute.html">GumboAttribute</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gumbo_8h.html#a48dbd27d9ef0b42ef841b74c5d8bea8c">gumbo_get_attribute</a> (const <a class="el" href="struct_gumbo_vector.html">GumboVector</a> *attrs, const char *name)</td></tr>
<tr class="separator:a48dbd27d9ef0b42ef841b74c5d8bea8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc6867266c808111d0c38b790f5a01fa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="gumbo_8h.html#ac09b34c35171e94412a6ceb04dce4c12">GumboOutput</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gumbo_8h.html#acc6867266c808111d0c38b790f5a01fa">gumbo_parse</a> (const char *buffer)</td></tr>
<tr class="separator:acc6867266c808111d0c38b790f5a01fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11c4fcbf67a6e1fbbce99069055d5c7e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="gumbo_8h.html#ac09b34c35171e94412a6ceb04dce4c12">GumboOutput</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gumbo_8h.html#a11c4fcbf67a6e1fbbce99069055d5c7e">gumbo_parse_with_options</a> (const <a class="el" href="gumbo_8h.html#a915ce96b9f456217a2258dcb29e03d3a">GumboOptions</a> *options, const char *buffer, size_t buffer_length)</td></tr>
<tr class="separator:a11c4fcbf67a6e1fbbce99069055d5c7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f6a797c7baac81a623faf3a32819414"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gumbo_8h.html#a7f6a797c7baac81a623faf3a32819414">gumbo_destroy_output</a> (const <a class="el" href="gumbo_8h.html#a915ce96b9f456217a2258dcb29e03d3a">GumboOptions</a> *options, <a class="el" href="gumbo_8h.html#ac09b34c35171e94412a6ceb04dce4c12">GumboOutput</a> *output)</td></tr>
<tr class="separator:a7f6a797c7baac81a623faf3a32819414"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:aa3a3ce54b9e3f5723ee45653dcfa6329"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="struct_gumbo_source_position.html">GumboSourcePosition</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gumbo_8h.html#aa3a3ce54b9e3f5723ee45653dcfa6329">kGumboEmptySourcePosition</a></td></tr>
<tr class="separator:aa3a3ce54b9e3f5723ee45653dcfa6329"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95e8899e79913ca9531f4a01ab5ebea0"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="struct_gumbo_string_piece.html">GumboStringPiece</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gumbo_8h.html#a95e8899e79913ca9531f4a01ab5ebea0">kGumboEmptyString</a></td></tr>
<tr class="separator:a95e8899e79913ca9531f4a01ab5ebea0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a963252540153b222f587d92db33d7fb5"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="struct_gumbo_vector.html">GumboVector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gumbo_8h.html#a963252540153b222f587d92db33d7fb5">kGumboEmptyVector</a></td></tr>
<tr class="separator:a963252540153b222f587d92db33d7fb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad836fc987f5d9c1d885d453c01382255"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="gumbo_8h.html#a915ce96b9f456217a2258dcb29e03d3a">GumboOptions</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gumbo_8h.html#ad836fc987f5d9c1d885d453c01382255">kGumboDefaultOptions</a></td></tr>
<tr class="separator:ad836fc987f5d9c1d885d453c01382255"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="aaf78769ab19b5fbe291f7977cae899df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaf78769ab19b5fbe291f7977cae899df">&#9670;&nbsp;</a></span>GumboAllocatorFunction</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void*(* GumboAllocatorFunction) (void *userdata, size_t size)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The type for an allocator function. Takes the 'userdata' member of the GumboParser struct as its first argument. Semantics should be the same as malloc, i.e. return a block of size_t bytes on success or NULL on failure. Allocating a block of 0 bytes behaves as per malloc. </p>

</div>
</div>
<a id="a19e07a5e573bf194295141fba654d2ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a19e07a5e573bf194295141fba654d2ea">&#9670;&nbsp;</a></span>GumboDeallocatorFunction</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* GumboDeallocatorFunction) (void *userdata, void *ptr)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The type for a deallocator function. Takes the 'userdata' member of the GumboParser struct as its first argument. </p>

</div>
</div>
<a id="a5f67d8397fda8fb7c90cc27f14ac4e7d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5f67d8397fda8fb7c90cc27f14ac4e7d">&#9670;&nbsp;</a></span>GumboNode</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="struct_gumbo_internal_node.html">GumboInternalNode</a> <a class="el" href="gumbo_8h.html#a5f67d8397fda8fb7c90cc27f14ac4e7d">GumboNode</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Forward declaration of GumboNode so it can be used recursively in <a class="el" href="struct_gumbo_internal_node.html#ad466c80e05d66ac5f44357591301edc1">GumboNode.parent</a>. </p>

</div>
</div>
<a id="a915ce96b9f456217a2258dcb29e03d3a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a915ce96b9f456217a2258dcb29e03d3a">&#9670;&nbsp;</a></span>GumboOptions</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="struct_gumbo_internal_options.html">GumboInternalOptions</a>  <a class="el" href="gumbo_8h.html#a915ce96b9f456217a2258dcb29e03d3a">GumboOptions</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Input struct containing configuration options for the parser. These let you specify alternate memory managers, provide different error handling, etc. Use kGumboDefaultOptions for sensible defaults, and only set what you need. </p>

</div>
</div>
<a id="ac09b34c35171e94412a6ceb04dce4c12"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac09b34c35171e94412a6ceb04dce4c12">&#9670;&nbsp;</a></span>GumboOutput</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="struct_gumbo_internal_output.html">GumboInternalOutput</a>  <a class="el" href="gumbo_8h.html#ac09b34c35171e94412a6ceb04dce4c12">GumboOutput</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The output struct containing the results of the parse. </p>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="a030699170924efadb11b8e43a8681852"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a030699170924efadb11b8e43a8681852">&#9670;&nbsp;</a></span>GumboAttributeNamespaceEnum</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="gumbo_8h.html#a030699170924efadb11b8e43a8681852">GumboAttributeNamespaceEnum</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Attribute namespaces. HTML includes special handling for XLink, XML, and XMLNS namespaces on attributes. Everything else goes in the generic "NONE" namespace. </p>

</div>
</div>
<a id="a5792dfd02513e421fb8f083f08e58cc6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5792dfd02513e421fb8f083f08e58cc6">&#9670;&nbsp;</a></span>GumboNamespaceEnum</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="gumbo_8h.html#a5792dfd02513e421fb8f083f08e58cc6">GumboNamespaceEnum</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Namespaces. Unlike in X(HT)ML, namespaces in HTML5 are not denoted by a prefix. Rather, anything inside an &lt;svg&gt; tag is in the SVG namespace, anything inside the &lt;math&gt; tag is in the MathML namespace, and anything else is inside the HTML namespace. No other namespaces are supported, so this can be an enum only. </p>

</div>
</div>
<a id="a74e7c5d1cb8189fcfad8443ce4c44ee0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a74e7c5d1cb8189fcfad8443ce4c44ee0">&#9670;&nbsp;</a></span>GumboNodeType</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="gumbo_8h.html#a74e7c5d1cb8189fcfad8443ce4c44ee0">GumboNodeType</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Enum denoting the type of node. This determines the type of the node.v union. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a74e7c5d1cb8189fcfad8443ce4c44ee0a34d99fd84894e81da94be99d7d169119"></a>GUMBO_NODE_DOCUMENT&#160;</td><td class="fielddoc"><p>Document node. v will be a <a class="el" href="struct_gumbo_document.html">GumboDocument</a>. </p>
</td></tr>
<tr><td class="fieldname"><a id="a74e7c5d1cb8189fcfad8443ce4c44ee0ac8229cb0a1c50040cf33a37886367032"></a>GUMBO_NODE_ELEMENT&#160;</td><td class="fielddoc"><p>Element node. v will be a <a class="el" href="struct_gumbo_element.html">GumboElement</a>. </p>
</td></tr>
<tr><td class="fieldname"><a id="a74e7c5d1cb8189fcfad8443ce4c44ee0a34bb32963a5c7b496c332235694ec29d"></a>GUMBO_NODE_TEXT&#160;</td><td class="fielddoc"><p>Text node. v will be a <a class="el" href="struct_gumbo_text.html">GumboText</a>. </p>
</td></tr>
<tr><td class="fieldname"><a id="a74e7c5d1cb8189fcfad8443ce4c44ee0a1b113ed18638a82264020253f4ab3339"></a>GUMBO_NODE_CDATA&#160;</td><td class="fielddoc"><p>CDATA node. v will be a <a class="el" href="struct_gumbo_text.html">GumboText</a>. </p>
</td></tr>
<tr><td class="fieldname"><a id="a74e7c5d1cb8189fcfad8443ce4c44ee0aa5dec1a464a7b15949928f4c09626a05"></a>GUMBO_NODE_COMMENT&#160;</td><td class="fielddoc"><p>Comment node. v will be a <a class="el" href="struct_gumbo_text.html">GumboText</a>, excluding comment delimiters. </p>
</td></tr>
<tr><td class="fieldname"><a id="a74e7c5d1cb8189fcfad8443ce4c44ee0a4076182d6a1eac3b650992ecf18b33a6"></a>GUMBO_NODE_WHITESPACE&#160;</td><td class="fielddoc"><p>Text node, where all contents is whitespace. v will be a <a class="el" href="struct_gumbo_text.html">GumboText</a>. </p>
</td></tr>
<tr><td class="fieldname"><a id="a74e7c5d1cb8189fcfad8443ce4c44ee0abfb19f332b24d2d051042fafbdd0d7aa"></a>GUMBO_NODE_TEMPLATE&#160;</td><td class="fielddoc"><p>Template node. This is separate from GUMBO_NODE_ELEMENT because many client libraries will want to ignore the contents of template nodes, as the spec suggests. Recursing on GUMBO_NODE_ELEMENT will do the right thing here, while clients that want to include template contents should also check for GUMBO_NODE_TEMPLATE. v will be a <a class="el" href="struct_gumbo_element.html">GumboElement</a>. </p>
</td></tr>
</table>

</div>
</div>
<a id="a74ff2c74a4bf7777efb2b9a29315e74b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a74ff2c74a4bf7777efb2b9a29315e74b">&#9670;&nbsp;</a></span>GumboParseFlags</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="gumbo_8h.html#a74ff2c74a4bf7777efb2b9a29315e74b">GumboParseFlags</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Parse flags. We track the reasons for parser insertion of nodes and store them in a bitvector in the node itself. This lets client code optimize out nodes that are implied by the HTML structure of the document, or flag constructs that may not be allowed by a style guide, or track the prevalence of incorrect or tricky HTML code. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a74ff2c74a4bf7777efb2b9a29315e74ba65032b83de057f59ef88c192bfc6257e"></a>GUMBO_INSERTION_NORMAL&#160;</td><td class="fielddoc"><p>A normal node - both start and end tags appear in the source, nothing has been reparented. </p>
</td></tr>
<tr><td class="fieldname"><a id="a74ff2c74a4bf7777efb2b9a29315e74babc5578ef89b8ddd8b992f239bd332408"></a>GUMBO_INSERTION_BY_PARSER&#160;</td><td class="fielddoc"><p>A node inserted by the parser to fulfill some implicit insertion rule. This is usually set in addition to some other flag giving a more specific insertion reason; it's a generic catch-all term meaning "The start tag for
this node did not appear in the document source". </p>
</td></tr>
<tr><td class="fieldname"><a id="a74ff2c74a4bf7777efb2b9a29315e74ba8935aa552a7b6cec029ad3f20a54e22b"></a>GUMBO_INSERTION_IMPLICIT_END_TAG&#160;</td><td class="fielddoc"><p>A flag indicating that the end tag for this node did not appear in the document source. Note that in some cases, you can still have parser-inserted nodes with an explicit end tag: for example, "Text&lt;/html&gt;" has GUMBO_INSERTED_BY_PARSER set on the &lt;html&gt; node, but GUMBO_INSERTED_END_TAG_IMPLICITLY is unset, as the &lt;/html&gt; tag actually exists. This flag will be set only if the end tag is completely missing; in some cases, the end tag may be misplaced (eg. a &lt;/body&gt; tag with text afterwards), which will leave this flag unset and require clients to inspect the parse errors for that case. </p>
</td></tr>
<tr><td class="fieldname"><a id="a74ff2c74a4bf7777efb2b9a29315e74bad755e610f243d4aa7531316e884f3a75"></a>GUMBO_INSERTION_IMPLIED&#160;</td><td class="fielddoc"><p>A flag for nodes that are inserted because their presence is implied by other tags, eg. &lt;html&gt;, &lt;head&gt;, &lt;body&gt;, &lt;tbody&gt;, etc. </p>
</td></tr>
<tr><td class="fieldname"><a id="a74ff2c74a4bf7777efb2b9a29315e74ba865b2f369584e25c67f4816c25b766ff"></a>GUMBO_INSERTION_CONVERTED_FROM_END_TAG&#160;</td><td class="fielddoc"><p>A flag for nodes that are converted from their end tag equivalents. For example, </p>
<p>when no paragraph is open implies that the parser should create a </p>
<p>tag and immediately close it, while  means the same thing as <br />
. </p>
</td></tr>
<tr><td class="fieldname"><a id="a74ff2c74a4bf7777efb2b9a29315e74baadeea09dc8e7c65af3d47e8e8fb535ac"></a>GUMBO_INSERTION_FROM_ISINDEX&#160;</td><td class="fielddoc"><p>A flag for nodes that are converted from the parse of an &lt;isindex&gt; tag. </p>
</td></tr>
<tr><td class="fieldname"><a id="a74ff2c74a4bf7777efb2b9a29315e74bae3c62bd3ec86284783013a2e78affb5a"></a>GUMBO_INSERTION_FROM_IMAGE&#160;</td><td class="fielddoc"><p>A flag for &lt;image&gt; tags that are rewritten as . </p>
</td></tr>
<tr><td class="fieldname"><a id="a74ff2c74a4bf7777efb2b9a29315e74baa1509526292f41998349376b86eab730"></a>GUMBO_INSERTION_RECONSTRUCTED_FORMATTING_ELEMENT&#160;</td><td class="fielddoc"><p>A flag for nodes that are cloned as a result of the reconstruction of active formatting elements. This is set only on the clone; the initial portion of the formatting run is a NORMAL node with an IMPLICIT_END_TAG. </p>
</td></tr>
<tr><td class="fieldname"><a id="a74ff2c74a4bf7777efb2b9a29315e74ba03d2650d8f17abefd9dd4b633b03e217"></a>GUMBO_INSERTION_ADOPTION_AGENCY_CLONED&#160;</td><td class="fielddoc"><p>A flag for nodes that are cloned by the adoption agency algorithm. </p>
</td></tr>
<tr><td class="fieldname"><a id="a74ff2c74a4bf7777efb2b9a29315e74babbd528bcd8e702fc5bab604e6988ae51"></a>GUMBO_INSERTION_ADOPTION_AGENCY_MOVED&#160;</td><td class="fielddoc"><p>A flag for nodes that are moved by the adoption agency algorithm. </p>
</td></tr>
<tr><td class="fieldname"><a id="a74ff2c74a4bf7777efb2b9a29315e74ba9afa0bd01c4480d76a0ca80b668f338b"></a>GUMBO_INSERTION_FOSTER_PARENTED&#160;</td><td class="fielddoc"><p>A flag for nodes that have been foster-parented out of a table (or should've been foster-parented, if verbatim mode is set). </p>
</td></tr>
</table>

</div>
</div>
<a id="aa0cbbfcc7ab2be48ac329ef7e76ff135"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0cbbfcc7ab2be48ac329ef7e76ff135">&#9670;&nbsp;</a></span>GumboQuirksModeEnum</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="gumbo_8h.html#aa0cbbfcc7ab2be48ac329ef7e76ff135">GumboQuirksModeEnum</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p><a href="http://www.whatwg.org/specs/web-apps/current-work/complete/dom.html#quirks-mode">http://www.whatwg.org/specs/web-apps/current-work/complete/dom.html#quirks-mode</a> </p>

</div>
</div>
<a id="a5a3aa6f4b039f85875d638088e676a0f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5a3aa6f4b039f85875d638088e676a0f">&#9670;&nbsp;</a></span>GumboTag</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="gumbo_8h.html#a5a3aa6f4b039f85875d638088e676a0f">GumboTag</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>An enum for all the tags defined in the HTML5 standard. These correspond to the tag names themselves. Enum constants exist only for tags which appear in the spec itself (or for tags with special handling in the SVG and MathML namespaces); any other tags appear as GUMBO_TAG_UNKNOWN and the actual tag name can be obtained through original_tag.</p>
<p>This is mostly for API convenience, so that clients of this library don't need to perform a strcasecmp to find the normalized tag name. It also has efficiency benefits, by letting the parser work with enums instead of strings. </p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a7f6a797c7baac81a623faf3a32819414"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7f6a797c7baac81a623faf3a32819414">&#9670;&nbsp;</a></span>gumbo_destroy_output()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gumbo_destroy_output </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="gumbo_8h.html#a915ce96b9f456217a2258dcb29e03d3a">GumboOptions</a> *&#160;</td>
          <td class="paramname"><em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="gumbo_8h.html#ac09b34c35171e94412a6ceb04dce4c12">GumboOutput</a> *&#160;</td>
          <td class="paramname"><em>output</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Release the memory used for the parse tree &amp; parse errors. </p>

</div>
</div>
<a id="a48dbd27d9ef0b42ef841b74c5d8bea8c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a48dbd27d9ef0b42ef841b74c5d8bea8c">&#9670;&nbsp;</a></span>gumbo_get_attribute()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="struct_gumbo_attribute.html">GumboAttribute</a>* gumbo_get_attribute </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="struct_gumbo_vector.html">GumboVector</a> *&#160;</td>
          <td class="paramname"><em>attrs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Given a vector of GumboAttributes, look up the one with the specified name and return it, or NULL if no such attribute exists. This uses a case-insensitive match, as HTML is case-insensitive. </p>

</div>
</div>
<a id="ac6addb5568175eafdcc6bc7513830e5e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6addb5568175eafdcc6bc7513830e5e">&#9670;&nbsp;</a></span>gumbo_normalize_svg_tagname()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* gumbo_normalize_svg_tagname </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="struct_gumbo_string_piece.html">GumboStringPiece</a> *&#160;</td>
          <td class="paramname"><em>tagname</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Fixes the case of SVG elements that are not all lowercase. <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#parsing-main-inforeign">http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#parsing-main-inforeign</a> This is not done at parse time because there's no place to store a mutated tag name. tag_name is an enum (which will be TAG_UNKNOWN for most SVG tags without special handling), while original_tag_name is a pointer into the original buffer. Instead, we provide this helper function that clients can use to rename SVG tags as appropriate. Returns the case-normalized SVG tagname if a replacement is found, or NULL if no normalization is called for. The return value is static data and owned by the library. </p>

</div>
</div>
<a id="a7ffea8f4c7b9615be4c6497173ad78af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7ffea8f4c7b9615be4c6497173ad78af">&#9670;&nbsp;</a></span>gumbo_normalized_tagname()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* gumbo_normalized_tagname </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="gumbo_8h.html#a5a3aa6f4b039f85875d638088e676a0f">GumboTag</a>&#160;</td>
          <td class="paramname"><em>tag</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the normalized (usually all-lowercased, except for foreign content) tag name for an GumboTag enum. Return value is static data owned by the library. </p>

</div>
</div>
<a id="acc6867266c808111d0c38b790f5a01fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc6867266c808111d0c38b790f5a01fa">&#9670;&nbsp;</a></span>gumbo_parse()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="gumbo_8h.html#ac09b34c35171e94412a6ceb04dce4c12">GumboOutput</a>* gumbo_parse </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>buffer</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Parses a buffer of UTF8 text into an GumboNode parse tree. The buffer must live at least as long as the parse tree, as some fields (eg. original_text) point directly into the original buffer.</p>
<p>This doesn't support buffers longer than 4 gigabytes. </p>

</div>
</div>
<a id="a11c4fcbf67a6e1fbbce99069055d5c7e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a11c4fcbf67a6e1fbbce99069055d5c7e">&#9670;&nbsp;</a></span>gumbo_parse_with_options()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="gumbo_8h.html#ac09b34c35171e94412a6ceb04dce4c12">GumboOutput</a>* gumbo_parse_with_options </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="gumbo_8h.html#a915ce96b9f456217a2258dcb29e03d3a">GumboOptions</a> *&#160;</td>
          <td class="paramname"><em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>buffer_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Extended version of gumbo_parse that takes an explicit options structure, buffer, and length. </p>

</div>
</div>
<a id="a862d4125ffb2f9d7c48c9a43033179d6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a862d4125ffb2f9d7c48c9a43033179d6">&#9670;&nbsp;</a></span>gumbo_string_equals()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool gumbo_string_equals </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="struct_gumbo_string_piece.html">GumboStringPiece</a> *&#160;</td>
          <td class="paramname"><em>str1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="struct_gumbo_string_piece.html">GumboStringPiece</a> *&#160;</td>
          <td class="paramname"><em>str2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Compares two GumboStringPieces, and returns true if they're equal or false otherwise. </p>

</div>
</div>
<a id="a70da4c83d0782f30c3e50bce9912a6d3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a70da4c83d0782f30c3e50bce9912a6d3">&#9670;&nbsp;</a></span>gumbo_string_equals_ignore_case()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool gumbo_string_equals_ignore_case </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="struct_gumbo_string_piece.html">GumboStringPiece</a> *&#160;</td>
          <td class="paramname"><em>str1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="struct_gumbo_string_piece.html">GumboStringPiece</a> *&#160;</td>
          <td class="paramname"><em>str2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Compares two GumboStringPieces ignoring case, and returns true if they're equal or false otherwise. </p>

</div>
</div>
<a id="a854e836c65501ec3c61bdf911b09c4ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a854e836c65501ec3c61bdf911b09c4ca">&#9670;&nbsp;</a></span>gumbo_tag_enum()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="gumbo_8h.html#a5a3aa6f4b039f85875d638088e676a0f">GumboTag</a> gumbo_tag_enum </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>tagname</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Converts a tag name string (which may be in upper or mixed case) to a tag enum. The <code>tag</code> version expects <code>tagname</code> to be NULL-terminated </p>

</div>
</div>
<a id="aaa2160c796d9b32b773b7346f7db1347"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa2160c796d9b32b773b7346f7db1347">&#9670;&nbsp;</a></span>gumbo_tag_from_original_text()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gumbo_tag_from_original_text </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_gumbo_string_piece.html">GumboStringPiece</a> *&#160;</td>
          <td class="paramname"><em>text</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Extracts the tag name from the original_text field of an element or token by stripping off &lt;/&gt; characters and attributes and adjusting the passed-in <a class="el" href="struct_gumbo_string_piece.html">GumboStringPiece</a> appropriately. The tag name is in the original case and shares a buffer with the original text, to simplify memory management. Behavior is undefined if a string-piece that doesn't represent an HTML tag (&lt;tagname&gt; or &lt;/tagname&gt;) is passed in. If the string piece is completely empty (NULL data pointer), then this function will exit successfully as a no-op. </p>

</div>
</div>
<a id="a413172766f337e395c8becd814271dac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a413172766f337e395c8becd814271dac">&#9670;&nbsp;</a></span>gumbo_vector_index_of()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int gumbo_vector_index_of </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_gumbo_vector.html">GumboVector</a> *&#160;</td>
          <td class="paramname"><em>vector</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>element</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the first index at which an element appears in this vector (testing by pointer equality), or -1 if it never does. </p>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="ad836fc987f5d9c1d885d453c01382255"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad836fc987f5d9c1d885d453c01382255">&#9670;&nbsp;</a></span>kGumboDefaultOptions</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="gumbo_8h.html#a915ce96b9f456217a2258dcb29e03d3a">GumboOptions</a> kGumboDefaultOptions</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Default options struct; use this with gumbo_parse_with_options. </p>

</div>
</div>
<a id="aa3a3ce54b9e3f5723ee45653dcfa6329"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa3a3ce54b9e3f5723ee45653dcfa6329">&#9670;&nbsp;</a></span>kGumboEmptySourcePosition</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="struct_gumbo_source_position.html">GumboSourcePosition</a> kGumboEmptySourcePosition</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>A SourcePosition used for elements that have no source position, i.e. parser-inserted elements. </p>

</div>
</div>
<a id="a95e8899e79913ca9531f4a01ab5ebea0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a95e8899e79913ca9531f4a01ab5ebea0">&#9670;&nbsp;</a></span>kGumboEmptyString</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="struct_gumbo_string_piece.html">GumboStringPiece</a> kGumboEmptyString</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>A constant to represent a 0-length null string. </p>

</div>
</div>
<a id="a963252540153b222f587d92db33d7fb5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a963252540153b222f587d92db33d7fb5">&#9670;&nbsp;</a></span>kGumboEmptyVector</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="struct_gumbo_vector.html">GumboVector</a> kGumboEmptyVector</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>An empty (0-length, 0-capacity) <a class="el" href="struct_gumbo_vector.html">GumboVector</a>. </p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>
